package com.ruoyi.common.utils.wxSend.weixinmoban;



import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.common.utils.RedisUtils;


import com.ruoyi.common.utils.wxSend.common.Constant;
import com.ruoyi.common.utils.wxSend.common.HttpClientUtil;
import com.ruoyi.common.utils.wxSend.entry.AccessToken;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * 定时获取微信access_token的线程
 *在主函数中注解@EnableScheduling，在程序启动时就开启定时任务。
 * 每90分钟执行一次
 */
@Component
public class AccessTokenThread {
    @Autowired
    private RedisUtils redisUtils;
    // 第三方用户唯一凭证
    public static AccessToken accessToken = null;
    //定时任务，90分钟执行一次
    //@Scheduled(fixedDelay = 2*2700*1000)
    @Scheduled(fixedDelay = 90*60*1000)
    public void getAccessToken(){
        System.out.println("开始获取access_token");
        String resultInfo = HttpClientUtil.doGet(Constant.getAccess_token_url());
        System.out.println("获取到的access_token:" + resultInfo);
        //此时已获取到userInfo，再根据业务进行处理
        System.out.println("请求获取userInfo:" + resultInfo);
        JSONObject jsonObject = JSONObject.parseObject(resultInfo);
        System.out.println("用户access_token--------"+jsonObject.getString("access_token"));
        //把获取的access_token保存到redis
          redisUtils.set("access_token",jsonObject.getString("access_token"));
        //redisUtils.set("access_token","test");
        //System.out.println("redisUtils.get(\"access_token\")"+redisUtils.get("access_token"));
    }
}
